home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / vidhrdw / konamiic.h < prev    next >
C/C++ Source or Header  |  2000-04-04  |  7KB  |  195 lines

  1. /* helper function to join two 16-bit ROMs and form a 32-bit data stream */
  2. void konami_rom_deinterleave_2(int mem_region);
  3. /* helper function to join four 16-bit ROMs and form a 64-bit data stream */
  4. void konami_rom_deinterleave_4(int mem_region);
  5.  
  6.  
  7. #define MAX_K007121 2
  8. extern unsigned char K007121_ctrlram[MAX_K007121][8];
  9.  
  10. void K007121_ctrl_w(int chip,int offset,int data);
  11. WRITE_HANDLER( K007121_ctrl_0_w );
  12. WRITE_HANDLER( K007121_ctrl_1_w );
  13. void K007121_sprites_draw(int chip,struct osd_bitmap *bitmap,
  14.         const unsigned char *source,int base_color,int global_x_offset,int bank_base,
  15.         UINT32 pri_mask);
  16. void K007121_mark_sprites_colors(int chip,
  17.         const unsigned char *source,int base_color,int bank_base);
  18.  
  19.  
  20. int K007342_vh_start(int gfx_index, void (*callback)(int layer,int bank,int *code,int *color));
  21. void K007342_vh_stop(void);
  22. READ_HANDLER( K007342_r );
  23. WRITE_HANDLER( K007342_w );
  24. READ_HANDLER( K007342_scroll_r );
  25. WRITE_HANDLER( K007342_scroll_w );
  26. void K007342_tilemap_update(void);
  27. WRITE_HANDLER( K007342_vreg_w );
  28. void K007342_tilemap_set_enable(int layer, int enable);
  29. void K007342_tilemap_draw(struct osd_bitmap *bitmap,int num,int flags);
  30. int K007342_is_INT_enabled(void);
  31.  
  32.  
  33. int K007420_vh_start(int gfxnum, void (*callback)(int *code,int *color));
  34. void K007420_vh_stop(void);
  35. READ_HANDLER( K007420_r );
  36. WRITE_HANDLER( K007420_w );
  37. void K007420_sprites_draw(struct osd_bitmap *bitmap);
  38.  
  39.  
  40. /*
  41. You don't have to decode the graphics: the vh_start() routines will do that
  42. for you, using the plane order passed.
  43. Of course the ROM data must be in the correct order. This is a way to ensure
  44. that the ROM test will pass.
  45. The konami_rom_deinterleave() function above will do the reorganization for
  46. you in most cases (but see tmnt.c for additional bit rotations or byte
  47. permutations which may be required).
  48. */
  49. #define NORMAL_PLANE_ORDER 0,1,2,3
  50. #define REVERSE_PLANE_ORDER 3,2,1,0
  51.  
  52.  
  53. /*
  54. The callback is passed:
  55. - layer number (0 = FIX, 1 = A, 2 = B)
  56. - bank (range 0-3, output of the pins CAB1 and CAB2)
  57. - code (range 00-FF, output of the pins VC3-VC10)
  58.   NOTE: code is in the range 0000-FFFF for X-Men, which uses extra RAM
  59. - color (range 00-FF, output of the pins COL0-COL7)
  60. The callback must put:
  61. - in code the resulting tile number
  62. - in color the resulting color index
  63. - if necessary, put flags and/or priority for the TileMap code in the tile_info
  64.   structure (e.g. TILE_FLIPX). Note that TILE_FLIPY is handled internally by the
  65.   chip so it must not be set by the callback.
  66. */
  67. int K052109_vh_start(int gfx_memory_region,int plane0,int plane1,int plane2,int plane3,
  68.         void (*callback)(int layer,int bank,int *code,int *color));
  69. void K052109_vh_stop(void);
  70. /* plain 8-bit access */
  71. READ_HANDLER( K052109_r );
  72. WRITE_HANDLER( K052109_w );
  73. void K052109_set_RMRD_line(int state);
  74. void K052109_tilemap_update(void);
  75. void K052109_tilemap_draw(struct osd_bitmap *bitmap,int num,int flags);
  76. int K052109_is_IRQ_enabled(void);
  77.  
  78.  
  79. /*
  80. The callback is passed:
  81. - code (range 00-1FFF, output of the pins CA5-CA17)
  82. - color (range 00-FF, output of the pins OC0-OC7). Note that most of the
  83.   time COL7 seems to be "shadow", but not always (e.g. Aliens).
  84. The callback must put:
  85. - in code the resulting sprite number
  86. - in color the resulting color index
  87. - if necessary, in priority the priority of the sprite wrt tilemaps
  88. */
  89. int K051960_vh_start(int gfx_memory_region,int plane0,int plane1,int plane2,int plane3,
  90.         void (*callback)(int *code,int *color,int *priority));
  91. void K051960_vh_stop(void);
  92. READ_HANDLER( K051960_r );
  93. WRITE_HANDLER( K051960_w );
  94. READ_HANDLER( K051960_word_r );
  95. WRITE_HANDLER( K051960_word_w );
  96. READ_HANDLER( K051937_r );
  97. WRITE_HANDLER( K051937_w );
  98. READ_HANDLER( K051937_word_r );
  99. WRITE_HANDLER( K051937_word_w );
  100. void K051960_sprites_draw(struct osd_bitmap *bitmap,int min_priority,int max_priority);
  101. void K051960_mark_sprites_colors(void);
  102. int K051960_is_IRQ_enabled(void);
  103. int K051960_is_NMI_enabled(void);
  104.  
  105. /* special handling for the chips sharing address space */
  106. READ_HANDLER( K052109_051960_r );
  107. WRITE_HANDLER( K052109_051960_w );
  108.  
  109.  
  110. int K053245_vh_start(int gfx_memory_region,int plane0,int plane1,int plane2,int plane3,
  111.         void (*callback)(int *code,int *color,int *priority_mask));
  112. void K053245_vh_stop(void);
  113. READ_HANDLER( K053245_word_r );
  114. WRITE_HANDLER( K053245_word_w );
  115. READ_HANDLER( K053245_r );
  116. WRITE_HANDLER( K053245_w );
  117. READ_HANDLER( K053244_r );
  118. WRITE_HANDLER( K053244_w );
  119. void K053244_bankselect(int bank);    /* used by TMNT2 for ROM testing */
  120. void K053245_sprites_draw(struct osd_bitmap *bitmap);
  121. void K053245_mark_sprites_colors(void);
  122.  
  123.  
  124. int K053247_vh_start(int gfx_memory_region,int plane0,int plane1,int plane2,int plane3,
  125.         void (*callback)(int *code,int *color,int *priority_mask));
  126. void K053247_vh_stop(void);
  127. READ_HANDLER( K053247_word_r );
  128. WRITE_HANDLER( K053247_word_w );
  129. READ_HANDLER( K053247_r );
  130. WRITE_HANDLER( K053247_w );
  131. READ_HANDLER( K053246_r );
  132. WRITE_HANDLER( K053246_w );
  133. READ_HANDLER( K053246_word_r );
  134. WRITE_HANDLER( K053246_word_w );
  135. void K053246_set_OBJCHA_line(int state);
  136. void K053247_sprites_draw(struct osd_bitmap *bitmap);
  137. void K053247_mark_sprites_colors(void);
  138. int K053247_is_IRQ_enabled(void);
  139.  
  140.  
  141. /*
  142. The callback is passed:
  143. - code (range 00-FF, contents of the first tilemap RAM byte)
  144. - color (range 00-FF, contents of the first tilemap RAM byte). Note that bit 6
  145.   seems to be hardcoded as flip X.
  146. The callback must put:
  147. - in code the resulting tile number
  148. - in color the resulting color index
  149. - if necessary, put flags for the TileMap code in the tile_info
  150.   structure (e.g. TILE_FLIPX)
  151. */
  152. int K051316_vh_start_0(int gfx_memory_region,int bpp,
  153.         void (*callback)(int *code,int *color));
  154. int K051316_vh_start_1(int gfx_memory_region,int bpp,
  155.         void (*callback)(int *code,int *color));
  156. int K051316_vh_start_2(int gfx_memory_region,int bpp,
  157.         void (*callback)(int *code,int *color));
  158. void K051316_vh_stop_0(void);
  159. void K051316_vh_stop_1(void);
  160. void K051316_vh_stop_2(void);
  161. READ_HANDLER( K051316_0_r );
  162. READ_HANDLER( K051316_1_r );
  163. READ_HANDLER( K051316_2_r );
  164. WRITE_HANDLER( K051316_0_w );
  165. WRITE_HANDLER( K051316_1_w );
  166. WRITE_HANDLER( K051316_2_w );
  167. READ_HANDLER( K051316_rom_0_r );
  168. READ_HANDLER( K051316_rom_1_r );
  169. READ_HANDLER( K051316_rom_2_r );
  170. WRITE_HANDLER( K051316_ctrl_0_w );
  171. WRITE_HANDLER( K051316_ctrl_1_w );
  172. WRITE_HANDLER( K051316_ctrl_2_w );
  173. void K051316_tilemap_update_0(void);
  174. void K051316_tilemap_update_1(void);
  175. void K051316_tilemap_update_2(void);
  176. void K051316_zoom_draw_0(struct osd_bitmap *bitmap,UINT32 priority);
  177. void K051316_zoom_draw_1(struct osd_bitmap *bitmap,UINT32 priority);
  178. void K051316_zoom_draw_2(struct osd_bitmap *bitmap,UINT32 priority);
  179. void K051316_wraparound_enable(int chip, int status);
  180. void K051316_set_offset(int chip, int xoffs, int yoffs);
  181.  
  182.  
  183. WRITE_HANDLER( K053251_w );
  184. enum { K053251_CI0=0,K053251_CI1,K053251_CI2,K053251_CI3,K053251_CI4 };
  185. int K053251_get_priority(int ci);
  186. int K053251_get_palette_index(int ci);
  187.  
  188.  
  189. WRITE_HANDLER( K054000_w );
  190. READ_HANDLER( K054000_r );
  191.  
  192. WRITE_HANDLER( K051733_w );
  193. READ_HANDLER( K051733_r );
  194.  
  195.